Conventionally, there are known game systems that allow a user to play a game based on a load of the user. For example, a conventional game system includes a board type controller having a load sensor. In the game system, a load value is detected by the load sensor when the user stands on the board type controller, and the detected load value is transmitted as operation data to a game apparatus. In the game apparatus that has received the operation data, a game process is executed based on the load value represented by the operation data transmitted from the board type controller, and the content of the game process is displayed on a monitor connected to the game apparatus.
In the conventional game system, however, the result of the game process based on the load value represented by the operation data is displayed on the monitor connected to the game apparatus. It is premised that an existing television receiver or the like is used as the monitor, and generally a stationary display is used. On the other hand, when the user performs an operation on the board type controller, the operation is often based on an action of the user. However, since the monitor is stationary installed, the user is not allowed to view the result of the game process in a favorable situation according to the user's action.
Accordingly, an object of the exemplary embodiments is to provide a computer-readable storage medium, an information processing system, and an information processing method, which allow, when a process is performed in accordance with an operation based on an action of a user, the user to view the result of the process in a favorable situation.
In order to achieve the above-mentioned object, the exemplary embodiments have the following configurations. It should be understood that the scope of the exemplary embodiments is interpreted only by the scope of the claims. In event of any conflict between the scope of the claims and the scope of the description in this section, the scope of the claims has priority.
An example of a configuration of a computer-readable storage medium according to one exemplary embodiment has stored therein an information processing program executed on a computer of an information processing apparatus which is capable of displaying an image on a portable display device. The portable display device outputs at least attitude data based on an attitude of a body of the portable display device. The information processing program causes the computer to act as a load obtaining section, an object attitude control section, an object moving section, and a display control section. The load obtaining section obtains data based on a load applied to a load detection device. The object attitude control section controls an attitude of an object arranged in a virtual world, based on the attitude data. The object moving section causes the object to move in the virtual world, based on the data obtained by the load obtaining section. The display control section displays, on the portable display device, a first image showing the virtual world including at least the object.
The information processing apparatus may be an apparatus for executing a game process and generating an image based on the game process, or may be a versatile apparatus such as a general personal computer. The portable display device may have a size small enough to be carried by a user. Typically, the portable display device may be a display device which allows the user, holding the portable display device with his/her both hands, to view an image displayed thereon. The portable display device may include other components than the section for outputting at least attitude data and the section for displaying the first image, like a terminal device of exemplary embodiments described later, or may not include other components. The load detection device may be, for example, a device which detects a load applied thereto when a user puts at least a part of his/her body thereon, or a device which outputs an on/off signal according to the load. It is considered that, when the user operates the load detection device, the user may stand on the load detection device with his/her bottoms of both feet contacting the upper surface thereof, or the user may put his/her one foot on the upper surface thereof, or the user may put another part (e.g., a hand) of his/her body on the upper surface thereof.
According to the above configuration, when the user performs an operation by using the load detection device and thereby a process of causing an object in a virtual world to move based on the user's operation is performed, the user is allowed to view the result of the process on the portable display device. Therefore, the user is allowed to view an image displayed on the portable display device while holding the portable display device. Accordingly, for example, the user is allowed to perform an operation in a new operation environment, and allowed to view the result of the process in a favorable situation for the user in accordance with the operation environment. Further, since the attitude of the object in the virtual world is controlled based on the attitude of the portable display device, the user is allowed to change the attitude of the object in accordance with the direction to which the portable display device is directed. Thus, the user is allowed to operate the object by moving the portable display device.
The information processing program may cause the computer to act as an attitude calculation section. The attitude calculation section calculates an attitude of the portable display device, based on the attitude data. In this case, the object attitude control section may control the attitude of the object, based on the attitude of the portable display device.
According to the above configuration, it is possible to calculate an attitude of the portable display device based on the attitude data, and control the attitude of the object based on the attitude of the portable display device.
The attitude calculation section may calculate an attitude of the portable display device with respect to a predetermined direction in a real space. The object attitude control section may control the attitude of the object with respect to a predetermined direction which is set in the virtual world and corresponds to the predetermined direction in the real space, based on the attitude of the portable display device with respect to the predetermined direction in the real space.
According to the above configuration, it is possible to control, based on the attitude of the portable display device with respect to the predetermined direction in the real space, the attitude of the object with respect to the predetermined direction in the virtual world corresponding to the predetermined direction in the real space.
The attitude calculation section may calculate, with a direction of gravity in the real space being the predetermined direction, an attitude of the portable display device with respect to the direction of gravity. The object attitude control section may control the attitude of the object with respect to a direction of gravity set in the virtual world, based on the attitude of the portable display device with respect to the direction of gravity in the real space.
According to the above configuration, it is possible to control, based on the attitude of the portable display device with respect to the direction of gravity, the attitude of the object with respect to the same direction of gravity.
The attitude calculation section may calculate at least an attitude in which the portable display device rotates around the direction of gravity in the real space. The object attitude control section may control the attitude of the object by causing the object to rotate around the direction of gravity set in the virtual world, based on the attitude in which the portable display device rotates around the direction of gravity in the real space.
According to the above configuration, it is possible to turn the attitude of the object to the left and to the right in the virtual world by turning the portable display device to the left and to the right in the real space.
The attitude calculation section may calculate at least an attitude in which the portable display device swings up and down around a horizontal direction perpendicular to the direction of gravity in the real space. The object attitude control section may control the attitude of the object in which the object swings up and down around a horizontal direction which is set in the virtual world and corresponds to the horizontal direction in the real space, based on the attitude in which the portable display device swings up and down around the horizontal direction in the real space.
According to the above configuration, it is possible to turn the attitude of the object up and down in the virtual world by turning the portable display device up and down in the real space.
The attitude calculation section may calculate at least an attitude in which the portable display device rotates around two axes orthogonal to a depth direction of a display screen of the portable display device, the depth direction being perpendicular to the display screen on which the first image is displayed. The object attitude control section may control the attitude of the object by causing the object to rotate around two axes orthogonal to a forward direction of the object, based on the attitude in which the portable display device rotates around the two axes orthogonal to the depth direction of the display screen.
According to the above configuration, it is possible to turn the attitude of the object up, down, to the left, and to the right by rotating, in the real space, the portable display device around the two axes orthogonal to the depth direction of the display screen of the portable display device.
The attitude calculation section may calculate at least an attitude in which the portable display device rotates around an axis along a horizontal direction of a display screen of the portable display device and an axis along a vertical direction of the display screen, the axes being orthogonal to the depth direction. The object attitude control section may control the attitude of the object by causing the object to rotate around an axis of a horizontal direction of the object, which is orthogonal to the forward direction of the object, in accordance with the attitude in which the portable display device rotates around the axis of the horizontal direction of the display screen, and causing the object to rotate around an axis of the object, which is orthogonal to the forward direction and the horizontal direction of the object, based on the attitude in which the portable display device rotates around the axis of the vertical direction of the display screen.
According to the above configuration, it is possible to turn the attitude of the object up, down, to the left, and to the right by rotating, in the real space, the portable display device around the vertical direction and the horizontal direction of the display screen of the portable display device.
The attitude calculation section may include a real space reference direction setting section and an angular difference calculation section. The real space reference direction setting section sets a reference attitude of the portable display device in the real space. The angular difference calculation section calculates an angular difference, around a predetermined axis in the real space, between the attitude of the portable display device at a current time and the reference attitude, based on data outputted from the portable display device. The object attitude control section may include a virtual world reference attitude setting section and a direction control section. The virtual world reference attitude setting section sets a reference attitude of the object in the virtual world. The direction control section controls the attitude of the object by causing the direction of the object to rotate from the reference attitude of the object around a predetermined axis in the virtual world, which corresponds to the predetermined axis in the real space, based on the angular difference calculated by the angular difference calculation section.
According to the above configuration, it is possible to control the attitude of the object, based on the reference attitudes set in the real space and the virtual world, respectively.
The object attitude control section may further include a reference attitude displacement section. The reference attitude displacement section rotationally displaces the direction of the reference attitude of the object which is set by the virtual world reference direction setting section, around the predetermined axis in the virtual world, by an amount of displacement according to the angular difference calculated by the angular difference calculation section. In this case, the direction control section may control the attitude of the object by causing the direction of the object to rotate from the displaced reference direction, around the predetermined axis in the virtual world, based on the angular difference calculated by the angular difference calculation section.
According to the above configuration, the reference attitude set in the virtual world is displaced to the direction to which the user turns the portable display device. Therefore, when changing the attitude of the object to the direction in which the attitude of the portable display device changes, it is possible to realize attitude control such that the amount of change in the attitude of the object is increased in accordance with the amount of change of the attitude of the portable display device. Further when the attitude of the portable display device returns to the reference direction in the real space, the attitude of the object returns to the displaced reference direction, thereby realizing a variety of controls for the attitude of the object.
The information processing program may further cause the computer to act as a first virtual camera control section. The first virtual camera control section arranges a first virtual camera for generating an image of the virtual world such that the object in the virtual world, which is viewed from behind, is included in the first image. In this case, the display control section may display, on the portable display device, as the first image, an image showing the virtual world viewed from the first virtual camera.
The first camera control section may control the position and the attitude of the first virtual camera, based on the attitude of the object and the position of the object in the virtual world.
According to the above configuration, since the first virtual camera is arranged behind the object, the position and the attitude of the first virtual camera change in accordance with a change in the attitude of the object. Accordingly, the position and the attitude of the first virtual camera are eventually controlled based on the attitude of the portable display device. Therefore, when the user turns the portable display device to his/her desired direction, the attitude of the object changes, and the user is provided with an image which makes the user feel like looking into the virtual world through the portable display device. Thus, the user is allowed to experience a sense of presence in the virtual world.
The first camera control section may control the position and the attitude of the first virtual camera such that the display position of the object in the first image is fixed.
According to the above configuration, since the object is displayed in the fixed position on the portable display device, the user is allowed to easily operate the object.
The object moving section may cause the object to move in a forward direction of the object controlled by the object attitude control section.
According to the above configuration, it is possible to control the movement direction of the object, based on the attitude of the portable display device.
The object control section may display, separately from the first image, a second image showing the virtual world on another display device connected to the information processing apparatus.
The other display device is a display device connected to the information processing apparatus, such as a monitor 2 described later. Any type of display device may be used so long as it is separated from the portable display device, and is capable of displaying the second image generated by the information processing apparatus. For example, the other display device may be integrated with (in one housing) the information processing apparatus.
According to the above configuration, an image of the same virtual world, which is different from the image displayed on the portable display device, is displayed on the other display device connected to the information processing device. Therefore, images of the virtual world, which are formed based on at least the load data and in accordance with different purposes of use, can be displayed on the display devices favorable for the user, respectively.
The display control section may display, on the other display device, as the second image, an image of the virtual world including the object, in which the virtual world is viewed from a viewpoint different from the viewpoint of the virtual world of the first image.
According to the above configuration, an image of the virtual world, which is viewed from a viewpoint different from that of the image displayed on the portable display device, is displayed on the other display device connected to the information processing device. Therefore, images formed according to different purposes of use can be displayed on the display devices favorable for the user, respectively.
The display control section may set the viewpoint of the virtual world of the second image, at a position apart from the object by a distance longer than the distance between the object and the viewpoint of the virtual world of the first image. The display control section may display, on the other display device, as the second image, a range of the virtual world which is larger than the range of the virtual world shown in the first image.
According to the above configuration, an image of the virtual world, which is larger in display range than the image of the virtual world displayed on the portable display device, is displayed on the other display device connected to the information processing device. Therefore, when providing the user with the state of the virtual world, images suitable for the user's operation can be displayed on the respective display devices.
The display control section may set a viewpoint for generating the second image, at a position in the virtual world, from which the object is viewed in a manner of bird's eye viewing. The display control section may display, on the other display device, as the second image, an image in which the object arranged in the virtual world is viewed in a manner of bird's eye viewing.
According to the above configuration, an image in which the virtual world is viewed in a manner of bird's eye viewing is displayed on the other display device connected to the information processing device. Therefore, when providing the user with the state of the virtual world, images suitable for the user's operation can be displayed on the respective display devices.
The display control section may set a first virtual camera for generating the first image and a second virtual camera for generating the second image, and cause a line-of-sight direction of the second virtual camera in the virtual world to change in accordance with a change in a line-of-sight direction of the first virtual camera in the virtual world.
According to the above configuration, it is possible to realize a display control in which, when the direction of the virtual world displayed on the portable display device changes, the direction of the virtual world displayed on the other display device also changes in the same direction.
The display control section may arrange the first virtual camera such that a forward direction of the object from behind the object in the virtual world is an imaging direction of the first virtual camera, and arrange the second virtual camera such that a position in the forward direction of the object in the virtual world is a point of view of the second virtual camera, and the object is displayed at the same position in the second image, and control the positions and/or the attitudes of the first virtual camera and the second virtual camera in accordance with an action of the object.
According to the above configuration, it is possible to realize a display control in which an image of the virtual world displayed on the portable display device and an image of the virtual world displayed on the other display device change in accordance with only the action of the object.
The attitude calculation section may calculate at least an orientation of the depth direction with respect to the direction of gravity in the real space. The object attitude control section may control the attitude of the object by setting a forward direction of the object such that the positional relation between the direction of gravity set in the virtual world and the forward direction of the object is substantially equal to the positional relation between the direction of gravity in the real space and the depth direction.
According to the above configuration, the user is allowed to control the orientation of the forward direction of the object in the virtual world, in accordance with the orientation of the depth direction of the display screen of the portable display device in the real space.
The object attitude control section may control the attitude of the object in the virtual world so as to be substantially equal to the attitude of the portable display device in the real space.
According to the above configuration, since the attitude of the object in the virtual world is controlled so as to be substantially equal to the attitude of the portable display device in the real space, the user operating the portable display device is allowed to intuitively change the attitude of the object.
The information processing program may further cause the computer to act as a center-of-gravity position calculation section. The center-of-gravity position calculation section calculates a center-of-gravity position of a load applied to the load detection device, based on the data obtained by the load obtaining section. In this case, the object moving section may cause the object to move based on the center-of-graving position calculated by the center-of-gravity position calculation section.
According to the above configuration, the user is allowed to move the object in accordance with the center-of-gravity position of the load applied to the load detection device by the user. For example, the user is allowed to move the object by performing stepping or shifting the center-of-gravity position of his/her body forward, backward, leftward, or rightward on the load detection device.
The object moving section may cause the object to move based on reciprocating motion of the center-of-gravity position calculated by the center-of-gravity position calculation section.
According to the above configuration, the user is allowed to move the object by causing the center-of-gravity position of the load applied to the load detection device by the user to reciprocate in a constant direction. For example, the user is allowed to move the object by performing stepping on the load detection device to shift the center-of-gravity position to the left and to the right.
The object moving section may cause the object to move at a movement speed according to a first action performed by the object when the center-of-gravity position, in its reciprocating motion, shifts from one side of a predetermined boundary to the other side, and may cause the object to move at a movement speed according to a second action performed by the object when the center-of-gravity position shifts from the other side of the predetermined boundary to the one side.
According to the above configuration, the user is allowed to move the object by the first action of the object, by shifting the center-of-gravity position of the load applied to the load detection device by the user to one side in the reciprocating motion, and allowed to move the object by the second action of the object, by shifting the center-of-gravity position to the other side in the reciprocating motion. For example, when the user performs stepping on the load detection device, the object is moved by its first action (e.g., an action of kicking the ground or doing a flutter kick with its right foot) when the user lifts his/her left foot, and the object is moved by its second action (e.g., an action of kicking the ground or doing a flutter kick with its left foot) when the user lifts his/her right foot.
The object moving section may set a movement speed of the object, based on a distance from a preset reference position to the center-of-gravity position calculated by the center-of-gravity position calculation section, set a movement direction of the object based on the direction from the reference position toward the center-of-gravity position, and cause the object to move in the movement direction at the movement speed.
According to the above configuration, the user is allowed to move the object by shifting the center-of-gravity position of the load applied to the load detection device by the user. For example, when the user tilts his/her body so as to put his/her weight forward on the load detection device, the object is moved forward at a speed according to the amount of the forward shift of the center-of-gravity position. When the user tilts his/her body so as to put his/her weight backward on the load detection device, the object is moved backward at a speed according to the amount of the backward shift of the center-of-gravity position.
The object moving section may cause the object to move in the movement direction, based on a change in the load represented by the data obtained by the load obtaining section.
According to the above configuration, the user is allowed to move the object by changing the load applied to the load detection device by the user. For example, the user is allowed to move the object by jumping or performing knee bending on the load detection device.
The object moving section may cause the object to move at a movement speed according to a first action performed by the object, at a time point when the load applied to the load detection device increases to be equal to or higher than a predetermined value.
According to the above configuration, the user is allowed to move the object by the first action of the object, by performing an operation to increase the load applied to the load detection device by the user. For example, when the user performs knee bending or jumps on the load detection device, the load applied to the load detection device is increased by the user's action of squatting on the load detection device. Accordingly, when the user performs the squatting action on the load detection device such that the load applied to the load detection device becomes equal to or higher than a predetermined value, the object is moved by the first action of the object (e.g., an action of jumping by kicking the ground with its both feet, or an action of doing a dolphin kick with its both feet).
The object moving section may cause the object to move when the load applied to the load detection device, which has once increased to be equal to or higher than a predetermined value, decreases to be equal to or lower than a predetermined value.
According to the above configuration, the user is allowed to move the object by performing an operation to once increase the loaded applied to the load detection device by the user and then decrease the load. For example, when the user performs knee being or jumps on the load detection device, the load applied to the load detection device is increased due to the user's action of squatting on the load detection device, and thereafter, decreased due to the user's action of stretching or half-rising. Accordingly, when the user performs an action of stretching or half-rising on the load detection device, which causes the load applied to the load detection device to be equal to or lower than a predetermined value, after the user's action of squatting on the load detection device, which causes the load applied to the load detection device to be equal to or higher than a predetermined value, the user can cause the object to move in accordance with the user's action.
The object moving section may cause the object to move at a movement speed based on a length of time from when the load increases to be equal to or higher than the predetermined value to when the load decreases to be equal to or lower than the predetermined value.
According to the above configuration, the movement speed of the object can be varied depending on the length of time from when the load applied to the load detection device becomes equal to or higher than a predetermined value to when the load becomes equal to or lower than a predetermined value. For example, when the user performs knee being or jumps on the load detection device, the movement speed of the object can be varied depending on the length of time from when the user performs an action of squatting to when the user performs an action of stretching or half-rising.
The portable display device may include at least one of a gyro sensor and an acceleration sensor. In this case, the attitude calculation section may calculate an attitude of the portable display device, based on data outputted from at least one of the gyro sensor and the acceleration sensor.
According to the above configuration, it is possible to accurately calculate an attitude of the portable display device by using data which is output from the gyro sensor and represents an angular velocity that occurs in the portable display device and/or data which is output from the acceleration sensor and represents an acceleration that occurs in the portable display device.
The display control section may output image data representing the first image to the portable display device. The portable display device may include an image data obtaining section, and a display section. The image data obtaining section obtains image data outputted from the information processing apparatus. The display section displays the first image represented by the image data obtained by the image data obtaining section.
According to the above configuration, the portable display device functions as a so-called thin client terminal which does not execute information processing.
The information processing program may further cause the computer to act as a compressed image generation section. The compressed image generation section generates compressed image data by compressing the image data representing the first image. In this case, the display control section may output the compressed image data generated by the compressed image generation section to the portable display device. The image data obtaining section may obtain the compressed image data outputted from the information processing apparatus. The portable display device may further include a display image decompression section configured to decompress the compressed image data to obtain image data representing the first display image. In this case, the display section may display the first image represented by the image data which has been obtained by the image data obtaining section and decompressed by the display image decompression section.
According to the above configuration, since the first image is compressed and transmitted from the information processing apparatus to the portable display device. Therefore, the first image can be transmitted at a high speed, thereby reducing a delay from when the first image is generated to when the first image is displayed on the portable display device.
The exemplary embodiments may be implemented in the form of an information processing system including the above-mentioned section, or in the form of an information processing method including actions performed by the above-mentioned section.
According to the exemplary embodiments, when the user performs an operation based on his/her action and thereby a process based on the user's action is performed, the user is allowed to view the result of the process in a favorable situation for the user.
These and other objects, features, aspects and advantages of the exemplary embodiments will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings.